/**
* @File:ble_rcv_files.h
* @Version:V1.0
* @Author:rudius
* @Brief:
* @Logs:
* 	Date		Author		Notes
* 	2025-07-09	rudius		first version
*/
#ifndef __BLE_RCV_FILES_H
#define __BLE_RCV_FILES_H

// <<< Use Configuration Wizard in Context Menu >>>

/* Includes ------------------------------------------------------------------*/
#include <stdint.h>
#include <stddef.h>
#include "bleota.h"
#ifdef __cplusplus
extern "C" {
#endif

/*----------------------------------------------------------------------------*/

/* Public define -------------------------------------------------------------*/
/* Public macro --------------------------------------------------------------*/
/* Public typedef ------------------------------------------------------------*/
typedef enum {
    FILE_SOURCE_BLE,     // Bluetooth source
    FILE_SOURCE_CLI,     // Command line source
    FILE_SOURCE_CONSOLE  // Console source
} file_source_t;

typedef enum {
    FILE_STORAGE_NONE,   // No storage selected
    FILE_STORAGE_FLASH,  // W25Qxx SPI Flash
    FILE_STORAGE_SD      // SD Card
} file_storage_t;
/* Public variables ----------------------------------------------------------*/
/* Public function prototypes ------------------------------------------------*/
int file_rcv_init(void);
int file_rcv_start(file_source_t source, file_storage_t storage, const char *base_path);
void file_rcv_ble_callback(struct mx01_device *dev,
                          const uint8_t *buffer,
                          rt_size_t size,
                          void *context);
#ifdef __cplusplus
}
#endif

// <<< end of configuration section >>>
#endif
/*------------------------------end of ble_rcv_files.h---------------------------------*/